複数行に打ち消し線を引くPopup Menu
いちいち一行づつ選択して-押すの面倒になってきたので作った
インラインコード記法を避けて打ち消しする
https://gyazo.com/d0dd7d8abd712f44a7e129e036801f0b
既知の問題
打ち消し線以外の文字装飾記法がリンクになってしまう
https://gyazo.com/bf76aa2ea715bbc43b5ce2e01981af74
解決策
気が向いたらそのうちやる
code:script.js
scrapbox.PopupMenu.addButton({
title: '\uf0cc',
onClick: text => {
const result = text.split(/\n/)
.map(line => line
一旦全ての打ち消し線を取り外す
code:script.js
(_,p1,p2)=> !!p1 ? [${p1} ${p2}] : p2)
インデント文字列、インラインコード記法を分離し、それ以外の部分に打ち消し線を適用する code:script.js
.replace(/(^\s+)|([^]+)|([^]*)/ug,(_,p1,p2,p3)=>{
if (p1) return p1; // インデント文字列
if (p3) return p3; // インラインコード記法
if (p2) return [- ${p2}]; // それ以外
throw Error('正規表現で捕捉できていないよ!')
})
).join('\n');
// テロメアが無駄に更新されるのを防ぐ
if(text == result) return;
return result;
}
});